<?php

namespace app\admin\controller;

use app\admin\model\User as UserModel;
use think\Request;

class User extends Base
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        // 查询用户列表
        $userlist = UserModel::paginate(5);

        // 获取用户的数量
        $count = UserModel::count();

        // 返回页面
        $this->view->assign('userlist', $userlist);
        $this->view->assign('count', $count);

        // 显示用户列表
        return $this->view->fetch();

    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
        return $this->view->fetch();
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        // 获取页面提交的数据
        $data = $request->param();

        // 执行新增用户的语句
        $result = UserModel::create($data);
        // var_export($result);
        // var_dump($result);
        // die();

        // 初始化ajax返回的信息和状态
        /*
         * $res[
         *  'status'  => 0,
         *  'message' => ''
         * ]
         */
        $res = ['status' => 0, 'message' => ''];

        // 判断是否新增成功
        if ($result == true) {
            $res['status'] = 1;
            $res['message'] = '添加成功！';
            $res['icon'] = 6;
        } else {
            $res['status'] = 0;
            $res['message'] = '添加失败！';
            $res['icon'] = 1;
        }
        return json($res);
    }

    /**
     * 显示指定的资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function read($id)
    {
        // 以$id查数据库
        $list = UserModel::get($id);
        $list->sexName = UserModel::$sexArr[$list->sex];
        return view('user/read', ['list' => $list]);
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        // 查询所有的信息
        $list = UserModel::get($id);
        return view('user/edit', ['list' => $list]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        // 获取前端提交过来的表单数据,此处可以修改班级信息,请不要过滤过grade字段
        $data = $request->param();
        // dump($data['id']);die;

        // 设置更新条件
        $condition = ['id' => $data['id']];

        // 更新当前记录,update必须要有条件,否则不会执行
        $result = UserModel::update($data, $condition);

        // 初始化AJAX返回的数据
        /** $result   = [
         *  'status'  => 0,
         *  'message' => '更新失败，请重试！~'
         * ];
         */
        $res = [
            'status' => 0,
            'message' => '更新失败，请重试！~'
        ];

        if ($result == true) {
            $res['status'] = 1;
            $res['message'] = '更新成功';
            $res['icon'] = 6;
        } else {
            $res['status'] = 0;
            $res['message'] = '更新失败，请重试！~';
            $res['icon'] = 5;
        }
        return json($res);
    }

    /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        /**
         * $res = [
         * 'code' => 0
         * 'data' => [],
         * 'message' => ''
         * ]
         */
        $res = ['status' => 1, 'data' => [], 'message' => ''];
        $user = UserModel::get($id);
        if ($user) {
            $id = $user->delete();
            if ($id) {
                $res['status'] = 1;
                $res['message'] = '删除用户成功';
                $res['icon'] = 1;
            } else {
                $res['status'] = 0;
                $res['message'] = '删除用户失败';
                $res['icon'] = 2;
            }
        } else {
            $res['status'] = 1;
            $res['message'] = '删除用户失败';
            $res['icon'] = 2;
        }
        return json($res);
    }

    public function upwd($id)
    {
        return $this->view->fetch('admin@user/password');
    }
}
